package com.eshop.modules.product.service;

import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.eshop.modules.product.service.dto.StoreProductReplyDto;
import java.util.Map;
import org.springframework.data.domain.Pageable;
import com.eshop.modules.product.service.dto.StoreProductReplyQueryCriteria;
import java.util.List;
import com.eshop.modules.product.vo.StoreProductReplyQueryVo;
import com.eshop.modules.product.vo.ReplyCountVo;
import com.eshop.modules.product.domain.StoreProductReply;
import com.eshop.common.service.BaseService;

public interface StoreProductReplyService extends BaseService<StoreProductReply>
{
    ReplyCountVo getReplyCount(final long productId);

    StoreProductReplyQueryVo handleReply(final StoreProductReplyQueryVo replyQueryVo);

    StoreProductReplyQueryVo getReply(final long productId);

    List<StoreProductReplyQueryVo> getReplyList(final long productId, final int type, final int page, final int limit);

    int getInfoCount(final Integer oid, final String unique);

    int productReplyCount(final long productId);

    int replyCount(final String unique);

    String replyPer(final long productId);

    Map<String, Object> queryAll(final StoreProductReplyQueryCriteria criteria, final Pageable pageable);

    List<StoreProductReply> queryAll(final StoreProductReplyQueryCriteria criteria);

    void download(final List<StoreProductReplyDto> all, final HttpServletResponse response) throws IOException;
}
